The present invention relates generally to data storage systems and, more particularly, to a system and method that employs a neural network to calculate an expected access time associated with each of a number of queued disk drive commands.
A typical data storage system includes a magnetic medium for storing data in magnetic form and a transducer used to write and read magnetic data respectively to and from the medium. A typical disk storage device, for example, includes a number of data storage disks coaxially mounted on a hub of a spindle motor. The spindle motor rotates the disks at speeds typically on the order of several thousand revolutions-per-minute (RPM).
Digital information is typically stored in the form of magnetic transitions on a series of concentric, spaced tracks formatted on the surface of the magnetizable rigid data storage disks. The tracks are generally divided into a number of sectors, with each sector comprising a number of information fields, including fields for storing data, and sector identification and synchronization information, for example.
An actuator assembly typically includes a plurality of outwardly extending arms with one or more transducers and slider bodies being mounted on flexible suspensions. The slider body lifts the transducer head off the surface of the disk as the rate of spindle motor rotation increases, and causes the head to hover above the disk on an air bearing produced by high speed disk rotation.
Typically, one read/write transducer or head is associated with each disk surface on which data is recorded. The data is generally recorded in equal sized sectors which are placed sequentially in tracks provided on the recordable disk surfaces. The tracks provided on the stack of disks are coaxially aligned such that the grouping of tracks at each position of the heads define a cylinder.
The location of a particular block of data within the stack of data storage disks may be determined by knowledge of three physical parameters. First, the cylinder number which defines the position of the heads must be known. Second, the head number which defines the surface of a particular disk on which the subject data is recorded must be known. Finally, the sector number which defines the specific location on the track at which the subject data is recorded must be known. The physical organization of the data stored in the disk drive is often hidden from the host computer by assigning a Logical Block Address (LBA) to each sector of data, although the LBA is converted to a corresponding Cylinder, Head, and Sector number within the disk drive.
In response to read and write commands received from a host processor, a disk drive system accesses appropriate disk locations to effect the desired read or write operation. In many cases, the disk drive receives commands from the host processor at a rate greater than the rate at which the disk drive is capable of executing the commands. In such cases, several commands are received and stored, typically in a queue, and then selectively executed.
Presently, many advanced hard disk drives employ the well-known Shortest Access Time First (SATF) algorithm to determine which of the queued commands can be initiated (e.g., accessed) first. To determine which command can be accessed first, the SATF algorithm calculates (1) the time to perform the seek and settle operation from the current cylinder to the target cylinder, and (2) the latency between this point and when the starting sector for the command is reached.
Conventional approaches, including those which employ the SATF algorithm, take a heuristic approach to calculating the access time of a given command. These known algorithms generally compare the latency that exists between the current head position and the target position to determine if the seek and settle operations can occur within this time frame. The efficacy of conventional algorithms, including the SATF algorithm, is dependent on the accuracy of the access time estimate. If the estimate is too low, the actuator may settle on the track after the desired sector has already passed rotationally. This will add one full revolution to the access time, thereby degrading performance. If the estimate is too high, then good candidate commands may be passed-over.
Estimating the time to access a command is currently considered a difficult problem in the art. Command access time is generally subject to variation over time due to a number of factors. For example, variations in manufactured drive components and drive mounting variations complicate the effort to accurately calculate the expected access time of a given command. Disk drive vibration and temperature fluctuations also complicate this effort. Conventional approaches to computing a command""s expected access time typically ignore these and other factors that influence the accuracy of access time estimates.
Moreover, such conventional approaches are unable to adapt to changes in disk drive system behavior during the operating life of the system, thereby reducing the performance of the drive more drastically as the drive ages. Additionally, currently known access time estimation approaches do not take into account variation between heads or the affect of temperature variance.
There exists a need in the data storage system manufacturing community for an apparatus and method for calculating the expected access time of a disk drive command with greater accuracy than is currently available using conventional techniques. There exists a further need for such an apparatus and method that can adapt over the life of the disk drive, and one that may be realized in hardware as well as software. The present invention is directed to these and other needs.
The present invention is directed to a method and apparatus for calculating an expected access time associated with one of a plurality of disk drive commands. A plurality of disk drive commands received from an external source are stored in a memory, typically a queue. Using a neural network, an expected access time associated with each of the queued commands is determined. Determining the expected access time associated with each of the queued commands involves determining a time for performing a seek and settle operation for each of the queued commands and a latency time associated with each of the queued commands. The command indicated by the neural network as having a minimum expected access time relative to access times associated with other ones of the queued commands is identified for execution.
The neural network includes a plurality of inputs and outputs. Data representative of a current read/write head position, a target read/write head position, and a latency time defined by the current and target read/write head positions are applied to respective inputs of the neural network. Data representative of disk drive temperature and seek direction (i.e., towards the inner diameter (ID) or outer diameter (OD) of the disk) may also be applied to respective inputs of the neural network. The data inputs to the neural network are preferably scaled.
The outputs of the neural network represent respective percentages corresponding to a likelihood that each queued command""s expected access time will fall within a latency time period associated with each queued command, the command""s latency time plus one disk revolution time period, and the command""s latency time plus a multiple of disk revolution time periods, such as two, three, and four disk revolution time periods. Each output may be multiplied by the time associated with that output, and the output multiplication results may then summed. The sum of the output multiplication results represents the expected access time associated with the subject command.
In accordance with another embodiment, the neural network comprises inputs for inputting data representative of seek length, destination cylinder, and seek direction, respectively. According to this embodiment, the neural network includes a single output. In response to input data applied to the neural network, an output value representing a probability of a particular command""s latency falling within a latency time associated with a current disk revolution is provided at the output of the network.
An additional disk revolution time period is added to the command""s latency to compute an adjusted latency in response to the command""s latency falling beyond the latency time associated with a current disk revolution. The neural network then determines the expected access time associated with the particular command using the adjusted latency.
A disk drive system may employ a plurality of neural networks. In one embodiment, the disk drive system comprises a first neural network and a second neural network. The first neural network is used to determine an expected access time associated with each of a plurality of read commands stored in a read command queue and the second neural network is used to determine an expected access time associated with each of a plurality of write commands stored in a write command queue. Further, a pair of read and write neural networks may be associated with each of a number of read/write transducers employed in a disk drive system.
The neural network may be trained at the time of manufacture and on a periodic basis during the service life of the disk drive. Iterative and batch training approaches may be employed.